#!/usr/bin/env fish
#UFUNCTION=第二代cdd
function cao
    #+++++++++++++++ 参数设置 +++++++++++++++++++
    set dir "/home/yhp/.config/fish/functions"
    set cmd_name "cao" #本函数的外部调用指令，需保持文件名为 cmd_name.fish 函数名为 cmd_name 
    set insert_cmd "cd" #函数实际的执行主要指令 -进入指定文件夹
    #++++++++++++ end 参数设置 ++++++++++++++++++


    set fd "/tmp/$cmd_name.db"
    if not test -f $fd
        set file "$dir/$cmd_name.fish"
        set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1)
        set db (math $db + 1)
        cat $file | tail -n +$db >$fd
    end
    #cat $fd	
    if test -z $argv[1] #空参数
        echo "使用 $cmd_name -help查看支持的参数"
    else if test $argv[1] = "-help"
        sed -i "s/#//g" $fd #删除文本中的 "#"
        echo "Usage: $cmd_name  [option]"
        echo
        cat $fd | awk '{print $1,$2}' | column -s \  -t
        echo
    else if test $argv[1] = "-refresh"
        set file "$dir/$cmd_name.fish"
        set db (grep -n "#~~~~~~#" $file | cut -d':' -f1 | tail -n1)
        set db (math $db + 1)
        cat $file | tail -n +$db >$fd
        echo "指令刷新完成,请使用 $cmd_name -help 查看最新指令"
        echo        
    else
        set cmd "awk '/#$argv[1]/{print $1}' $fd"
        set st (eval $cmd)
        if test -z $st
            echo "使用 $cmd_name -help查看支持的参数"
        else
            #echo $st
            set ur (echo $st | cut -d' ' -f3)
            set cmd "$insert_cmd $ur"
            eval $cmd    # >/dev/null ^/dev/null &
            pwd
        end
    end
    return
end

###### 按照下面的格式，将会自动读取下面的内容，方便添加内容 ########
#~~~~~~#
#-help 显示帮助
#-refresh 刷新指令缓存(每次添加指令后执行一次)         #该行以下可修改
#tmp 进入个人tmp文件夹 /media/yhp/_dde_data/temp
#data 进入个人data文件夹 /media/yhp/_dde_data
#iverilog 进入iverilog_module项目路径 /media/yhp/_dde_data/FPGA_PRJ/iverilog_module
#go 进入golang项目路径 /media/yhp/_dde_data/go
#linux_config 进入linux_config项目路径 /media/yhp/_dde_data/linux_config
#python 进入python项目路径 /media/yhp/_dde_data/mpython/src
#shell 进入shell项目路径 /media/yhp/_dde_data/shell
#sverilog 进入system-verilog项目路径 /media/yhp/_dde_data/sverilog
#fpga 进入fpga-ide项目路径 /media/yhp/_dde_data/FPGA_PRJ/
#ftir 进入ftir光谱仪项目路径 /media/yhp/_dde_data/FTIR/
#note 进入看云个人笔记路径 /home/yhp/Documents/kancloud/note2020
#paper 进入个人论文路径 /media/yhp/_dde_data/论文









